home *** CD-ROM | disk | FTP | other *** search
- package sun.demo.select;
-
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Font;
- import java.awt.Label;
- import java.awt.LayoutManager;
- import java.awt.List;
- import java.awt.Panel;
- import java.awt.event.ActionEvent;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.sql.Connection;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.util.Vector;
-
- public class Select extends Panel {
- private transient Label status;
- private transient List text;
- private static final int NO_WORK = 0;
- private static final int DO_SELECT = 3;
- private transient int work = 0;
- private static final String spaces = " ";
- private String url = "jdbc:odbc:SQLSERVER";
- private String user = "guest";
- private String password = "guest";
- private String selectString = "";
- private int maxRows = 200;
-
- public Select() {
- ((Container)this).setLayout((LayoutManager)null);
- ((Component)this).resize(200, 300);
- this.initialize();
- }
-
- private void initialize() {
- if (this.text == null) {
- ((Container)this).removeAll();
- this.text = new List();
- this.text.setFont(new Font("Courier", 0, 12));
- ((Container)this).add(this.text);
- this.status = new Label("", 0);
- ((Container)this).add(this.status);
- this.layout();
- new WorkerThread(this);
- }
- }
-
- void doWork() {
- while(true) {
- int var1 = this.getWork();
- if (var1 == 3) {
- this.select();
- }
- }
- }
-
- synchronized int getWork() {
- this.work = 0;
-
- while(this.work == 0) {
- try {
- this.wait();
- } catch (Exception var2) {
- }
- }
-
- int var1 = this.work;
- return var1;
- }
-
- void select() {
- this.text.removeAll();
- Connection var1 = Util.connect(this.url, this.user, this.password, this.status);
-
- try {
- Statement var2 = var1.createStatement();
- ResultSet var3 = var2.executeQuery(this.selectString);
- ResultSetMetaData var4 = var3.getMetaData();
- int var5 = var4.getColumnCount();
- int[] var6 = new int[var5 + 1];
- Vector[] var7 = new Vector[var5 + 1];
-
- for(int var8 = 1; var8 <= var5; ++var8) {
- var6[var8] = var4.getColumnName(var8).length();
- var7[var8] = new Vector();
- }
-
- int var9;
- for(var9 = 0; var3.next() && var9 < this.maxRows; ++var9) {
- for(int var10 = 1; var10 <= var5; ++var10) {
- String var11 = var3.getString(var10);
- if (var11 == null) {
- var11 = "";
- }
-
- if (var11.length() > 80) {
- var11 = var11.substring(0, 80);
- }
-
- if (var11.length() > var6[var10]) {
- var6[var10] = var11.length();
- }
-
- var7[var10].addElement(var11);
- }
- }
-
- String var18 = "";
-
- for(int var19 = 1; var19 <= var5; ++var19) {
- String var12 = var4.getColumnName(var19);
- int var13 = var6[var19] - var12.length();
- if (var19 != 1) {
- ++var13;
- }
-
- if (var13 > 0) {
- var18 = var18 + " ".substring(0, var13);
- }
-
- var18 = var18 + var12;
- }
-
- this.text.addItem(var18);
-
- for(int var20 = 0; var20 < var9; ++var20) {
- String var21 = "";
-
- for(int var14 = 1; var14 <= var5; ++var14) {
- String var15 = (String)var7[var14].elementAt(var20);
- int var16 = var6[var14] - var15.length();
- if (var14 != 1) {
- ++var16;
- }
-
- if (var16 > 0) {
- var21 = var21 + " ".substring(0, var16);
- }
-
- var21 = var21 + var15;
- }
-
- this.text.addItem(var21);
- }
-
- if (this.text.countItems() >= this.maxRows) {
- this.status.setText("Only read first " + this.maxRows + " rows");
- } else {
- this.status.setText("Done.");
- }
- } catch (SQLException var17) {
- System.err.println("Caught " + var17);
- this.status.setText("Caught " + var17);
- }
-
- Util.disconnect(var1);
- this.layout();
- }
-
- public synchronized void layout() {
- this.initialize();
- int var1 = ((Component)this).size().width;
- int var2 = ((Component)this).size().height;
- this.text.reshape(0, 0, var1, var2 - 40);
- this.status.reshape(15, var2 - 30, 2 * var1, 25);
- }
-
- public String getURL() {
- return this.url;
- }
-
- public void setURL(String var1) {
- this.url = var1;
- }
-
- public String getUser() {
- return this.user;
- }
-
- public void setUser(String var1) {
- this.user = var1;
- }
-
- public String getPassword() {
- return this.password;
- }
-
- public void setPassword(String var1) {
- this.password = var1;
- }
-
- public String getSQL() {
- return this.selectString;
- }
-
- public void setSQL(String var1) {
- this.selectString = var1;
- }
-
- public int getMaxRows() {
- return this.maxRows;
- }
-
- public void setMaxRows(int var1) {
- this.maxRows = var1;
- }
-
- private void writeObject(ObjectOutputStream var1) throws IOException {
- this.text.removeAll();
- var1.defaultWriteObject();
- }
-
- private void readObject(ObjectInputStream var1) throws ClassNotFoundException, IOException {
- var1.defaultReadObject();
- this.initialize();
- }
-
- public void update(ActionEvent var1) {
- this.update();
- }
-
- public synchronized void update() {
- this.work = 3;
- this.notify();
- }
- }
-